package com.mrlee.mapper;

import com.mrlee.bean.Account;
import com.mrlee.bean.Admin;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AccountMapper {
    /**
     * 根据Id删除账号
     * @param accountId 账号Id
     * @return
     */
    int deleteByPrimaryKey(Integer accountId);

    /**
     * 插入
     * @param record 账号信息
     * @return
     */
    int insert(Account record);

    /**
     *动态插入
     * @param record 账号信息
     * @return
     */
    int insertSelective(Account record);

    /**
     * 根据Id查找信息
     * @param accountId
     * @return
     */
    Account selectByPrimaryKey(Integer accountId);

    /**
     * 动态修改
     * @param record 修改信息
     * @return
     */
    int updateByPrimaryKeySelective(Account record);

    /**
     * 修改
     * @param record 修改信息
     * @return
     */
    int updateByPrimaryKey(Account record);

    /**
     * 查找全部账号
     * @return
     */
    List<Account> selectAllAccount();

    /**
     * 修改状态
     * @param accountId 账号Id
     * @param status 状态
     * @return
     */
    int updateStatus(@Param("accountId")Integer accountId,@Param("status")Integer status);

    /**
     * 根据身份证号查找
     * @param cardId 身份证号
     * @return
     */
    Account selectAccountByCardId(String cardId);


    /**
     * 修改暂停日期
     * @param accountId 账号Id
     * @param time 时间
     */
    void updatePauseDate(@Param("accountId")Integer accountId,@Param("time") String time);

    /**
     * 修改关闭日期
     * @param accountId 账号Id
     * @param time 时间
     */
    void updateCloseDate(@Param("accountId")Integer accountId,@Param("time") String time);

    /**
     * 根据账号Id查找账号
     * @param accountId 账号Id
     * @return
     */
    Account selectAccountById(@Param("accountId")Integer accountId);

    /**
     * 根据登录名查找账号
     * @param loginname
     * @return
     */
    Account selectAccountByLoginName(@Param("loginname")String loginname);

    /**
     * 根据登录名模糊查询
     * @param loginname
     * @return
     */
    List<Account> searchAccountByLoginName(@Param("loginname")String loginname);

    /**
     * 根据姓名模糊查询
     * @param name
     * @return
     */
    List<Account> selectAccountByName(@Param("name")String name);

    /**
     * 根据状态查询
     * @param status
     * @return
     */
    List<Account> selectAccountByStatus(@Param("status")String status);

    /**
     * 动态查询
     * @param name 姓名
     * @param cardid 身份证号
     * @param status 状态
     * @param loginname 登录名
     * @return
     */
    List<Account> dynamicSearch(@Param("name") String name,@Param("cardid") String cardid,@Param("status") String status,@Param("loginname") String loginname);
}